﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TA.DotNetUtils
{
	public class ParameterEventArgs : EventArgs
	{
		#region STATIC
		public static ParameterEventArgs<T> Create<T>(T parameter)
		{
			return new ParameterEventArgs<T>(parameter);
		}
		#endregion
		#region PUBLIC
		#region INIT
		public ParameterEventArgs(object parameter)
		{
			this._parameter = parameter;
		}
		#endregion
		#region EVENTS
		#endregion
		#region PROPS
		public object Parameter { get { return this._parameter; } }
		#endregion
		#region METHODS
		#endregion
		#endregion
		#region INTERNAL
		#region CONST/STATIC
		#endregion
		#region VARS
		object _parameter;
		#endregion
		#region PROPS
		#endregion
		#region METHODS
		#region INIT
		#endregion
		#region DATA
		#endregion
		#region HANDLERS
		#endregion
		#endregion
		#endregion

	}
	public delegate void ParameterEventHandler(object s, ParameterEventArgs e);
	public class ParameterEventArgs<T> : EventArgs
	{
		#region PUBLIC
		#region INIT
		public ParameterEventArgs(T parameter)
		{
			this._parameter = parameter;
		}
		#endregion
		#region EVENTS
		#endregion
		#region PROPS
		public T Parameter { get { return this._parameter; } }
		#endregion
		#region METHODS
		#endregion
		#endregion
		#region INTERNAL
		#region CONST/STATIC
		#endregion
		#region VARS
		T _parameter;
		#endregion
		#region PROPS
		#endregion
		#region METHODS
		#region INIT
		#endregion
		#region DATA
		#endregion
		#region HANDLERS
		#endregion
		#endregion
		#endregion

	}
	public delegate void ParameterEventHandler<T>(object s, ParameterEventArgs<T> e);
}
